/**  
* @Title: MinProgramUtils.java
* @Package com.lemon.utils.wx
* @Description: (一句话阐述):
* @author Ran_cc
* @date 2018年12月5日
* @version V1.0  
*/
package com.lemon.utils.wx;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;

import com.alibaba.fastjson.JSONObject;

/**
 * <p>Title: MinProgramUtils</p>
 * <p>Description: 
 * </p>
 * <p>Company: </p>
 * @author Ran_cc
 * @date 2018年12月5日
 * @版本 V 1.0 
 */
public class MinProgramUtils {
	private static Logger logger = LoggerFactory.getLogger(MinProgramUtils.class);

	/**
	 * 微信登录成功后获取用户的openId和unionId
	 * <p/>
	 * Date 2018年9月29日 下午5:03:15
	 * <p/>
	 * 
	 * @author 网行天下
	 */
	public static MiniprogramResult getOpenId(String code) {
		logger.info("获取小程序OpenId和SessionKey数据开始code:" + code);
		MiniprogramResult miniprogramResult = null;
		String sessionData = "";
		String appid = "xxx";
		String secret = "xxx";
		String authorizationCodeUrl = "https://api.weixin.qq.com/sns/jscode2session?appid=%s&amp;secret=%s&amp;js_code=%s&amp;grant_type=authorization_code";
		// 微信的接口
		String url = String.format(authorizationCodeUrl , appid , secret , code);
		logger.debug(url);
		RestTemplate restTemplate = new RestTemplate();
		// 进行网络请求,访问url接口
		ResponseEntity<String> responseEntity = restTemplate.exchange(url , HttpMethod.GET , null , String.class);
		// 根据返回值进行后续操作
		if (responseEntity != null && responseEntity.getStatusCode() == HttpStatus.OK) {
			sessionData = responseEntity.getBody();
			// 此处为返回json数据转换成javabean，可以自己查阅其他材料写
			miniprogramResult = JSONObject.parseObject(sessionData , MiniprogramResult.class);
			if (miniprogramResult != null) {
				return miniprogramResult;
			}
		}
		logger.info("获取小程序OpenId和SessionKey数据结束result:" + miniprogramResult);
		return miniprogramResult;
	}

}
